#include<bits/stdc++.h>
#define int long long
#define N 800005
using namespace std;
int n;
int u[N],v[N],w[N];
int fa[N],siz[N];
int sum,a[N];
int ans[N];
int f[N][23],h[N][23];
int p[23],p2[23];
vector<pair<int,int> > g[23],G[N];
inline int read(){
    int x=0,f=1;char ch=getchar();
    while(!isdigit(ch)){if(ch=='-') f=-f;ch=getchar();}
    while(isdigit(ch)){x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}
    return x*f;
}
int Find(int x){return x==fa[x]?x:fa[x]=Find(fa[x]);}
void dfs1(int x,int F){
    fa[x]=F;
    f[x][21]=1;
    for(pair<int,int> i:G[x]){
        int v=i.first,w=i.second;
        if(v==F) continue;
        dfs1(v,x);
        for(int j=1;j<=21;j++) f[x][min(j,w)]+=f[v][j];
    }
}
void dfs2(int x,int F){
    for(int i=1;i<=21;i++) p[i]=0;
    for(pair<int,int> i:G[x]){
        int v=i.first,w=i.second;
        if(v==F) continue;
        for(int j=1;j<=21;j++) p[min(j,w)]+=f[v][j];
    }
    for(pair<int,int> i:G[x]){
        int v=i.first,w=i.second;
        if(v==F) continue;
        for(int j=1;j<=21;j++) p[min(j,w)]-=f[v][j];
        for(int j=1;j<=21;j++) h[v][min(j,w)]+=p[j]+h[x][j];
        h[v][w]++;
        for(int j=1;j<=21;j++) p[min(j,w)]+=f[v][j];
    }
    for(pair<int,int> i:G[x]){
        int v=i.first,w=i.second;
        if(v==F) continue;
        dfs2(v,x);
    }
}
signed main(){
    freopen("tatooine.in","r",stdin);
    freopen("tatooine.out","w",stdout);
    n=read();
    for(int i=1;i<n;i++){
        u[i]=read();v[i]=read();w[i]=read();
        g[w[i]].push_back({u[i],v[i]});
        G[u[i]].push_back({v[i],w[i]});
        G[v[i]].push_back({u[i],w[i]});
    }
    for(int i=1;i<=n;i++) fa[i]=i,siz[i]=1;
    for(int t=20;t>=1;t--){
        for(pair<int,int> i:g[t]){
            int x=Find(i.first),y=Find(i.second);
            siz[y]+=siz[x];
            fa[x]=y;
        }
        for(int i=1;i<=n;i++){
            if(i!=Find(i)) continue;
            a[t]+=siz[i]*(siz[i]-1);
        }
        sum+=(a[t]-a[t+1])*t;
    }
    dfs1(1,0);
    dfs2(1,0);
    sum/=2;
    for(int i=1;i<n;i++){
        if(u[i]!=fa[v[i]]) swap(u[i],v[i]);
        ans[i]=sum;
        for(int j=1;j<=21;j++) p[j]=p2[j]=0;
        for(int j=1;j<=21;j++) p[min(w[i],j)]+=h[v[i]][j],p2[min(w[i],j)]+=f[v[i]][j];
        for(int j=w[i];j>=1;j--) p[j]+=p[j+1],p2[j]+=p2[j+1];
        for(int j=1;j<=w[i];j++) ans[i]-=j*(p2[j]-p2[j+1])*p[j+1];
        for(int j=1;j<=w[i];j++) ans[i]-=j*p2[j]*(p[j]-p[j+1]);
        printf("%lld\n",ans[i]);
    }
    return 0;
}